//
//  EmoticonPackage.swift
//  01-表情键盘
//
//  Created by mac on 16/4/21.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit

class EmoticonPackage: NSObject {

    /// 表情包所在路径
    var id: String?
    /// 表情包的名称，显示在 toolbar 中
    var group_name_cn: String?
    /// 表情数组 - 能够保证，在使用的时候，数组已经存在，可以直接追加数据 .每一个包中的具体表情
    lazy var emoticons = [Emoticon]()
    
    init(dict: [String :AnyObject]) {
        super.init()
        
        id = dict["id"] as? String
        
        group_name_cn = dict["group_name_cn"] as? String
        
        //1 数组中每一个成员都是一个字典
        if let array = dict["emoticons"] as? [[String: AnyObject]]{
            //标记是第几个的角标
            var index = 0
            //2 遍历数组
            for var d  in array{
                
               // 1> 判断png是否有值
                if let png = d["png"] as? String, dir = id{
                    // 2> 重新设置字典的 png 的value
                    d["png"] = dir + "/" + png
                }
                
                emoticons.append(Emoticon(dict: d))
                
                index++
                //每隔20个九天假一个删除按钮
                if index==20{
                    emoticons.append(Emoticon(isRemoved: true))
                    
                    index = 0
                }
            }
            
        }
        //添加空白的按钮
        appendEmptyEmoticon()
    }
    
    private func appendEmptyEmoticon(){
        
        let count = emoticons.count % 21
        
        if emoticons.count>0 && count==0 {
            return
        }
//         print("\(group_name_cn) 剩余表情数量 \(count)")
        
        // 添加空白表情
        for _ in count..<20 {
            emoticons.append(Emoticon(isEmpty: true))
        }
       
        // 最末尾添加一个删除按钮
        emoticons.append(Emoticon(isRemoved: true))

    }
    
    override var description : String{
        
        let keys = ["id","group_name_cn","emoticons"];
        
        return dictionaryWithValuesForKeys(keys).description
    }
}





























